# 列表 相当于Java里的Array
# list
# 定义一个list
# 变量名 = [元素1,元素2......]
# 可以存很多元素，有序，元素可以重复，元素的类型可以不唯一，可变的
list1 = [1, 1, 2, 3, 4, 5, 6, "abc", False, 1.1]
print(list1, type(list1))
# 如何判断有序
# 看能否通过 下标/索引/index 将其中的元素取出来
# 索引：从0开始
# 取：可以通过 索引 取元素
print(list1[3])
# pop(index) 如果没有传入index 默认取最后一个元素，并将其从list中移除
print(list1.pop())
print(list1)

# 增加一个元素
# 将元素增加至末尾
list1.append(100)
print(list1)
# 按照指定的位置添加一个元素
list1.insert(7, 200)
print(list1)

# 修改
# 通过索引修改
list1[0] = 0
print(list1)

# 删除一个元素
# 指定一个元素的值去删除list中的元素
# 而不是索引
list1.remove(200)
print(list1)

list2 = [2, 4, 6, 8, 10, 1, 3, 5, 7, 9]
# sort 排序
list2.sort()
print(list2)

# 清空list
list2.clear()
print(list2)

list3 = [1, 2, 3]
list4 = [4, 5, 6]
# 将list4中的元素加入list3
list3.extend(list4)
print(list3)
# 反转
list3.reverse()
print(list3)
# 根据值去查找元素的索引
print(list3.index(4))

# 切片
list5 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list6 = []
# 不用切片，一个一个拿
list6.append(list5[3])
list6.append(list5[4])
list6.append(list5[5])
print(list6)

list7 = []
# 使用切片
# listN[起始位置:结束位置:步长]
# 返回 从起始位置开始，到结束位置为止的所有元素
# 含头不含尾 [起始位置,结束位置)
# 步长：每隔几个元素取一个，默认是1
list7 = list5[3:6]
# [4, 5, 6]
print(list7)
# [1, 3, 5, 7, 9]
print(list5[::2])